{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "73bd968b-d970-4a05-94ef-4e7abf990827",
   "metadata": {},
   "source": [
    "Chapter 05\n",
    "\n",
    "# 图解鸡兔同笼问题\n",
    "Book_3《数学要素》 | 鸢尾花书：从加减乘除到机器学习 (第二版)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "53285d8b-1ae7-4594-ac7f-602a5164cb57",
   "metadata": {},
   "source": [
    "这段代码使用Matplotlib和Numpy库绘制了两个方程的图形，找到它们的交点，并对图形做了详细的样式设置，呈现出两个变量的关系及其解。代码的主要功能如下：\n",
    "\n",
    "1. **设置图形尺寸和布局**：首先调整了图形大小和自动布局，使内容在$7.5 \\times 3.5$英寸的图形窗口中显示。自动布局避免了内容重叠，使图形更清晰。\n",
    "\n",
    "2. **定义数据点和线性方程**：\n",
    "   - 使用$np.arange(0, 30 + 1, step=1)$生成从$0$到$30$的自变量数组$x\\_array$，步长为$1$。\n",
    "   - 定义了两个方程来表示两条直线的关系：\n",
    "     - $$y\\_line\\_1 = 35 - x\\_array$$\n",
    "     - $$y\\_line\\_2 = \\frac{94 - 2 \\cdot x\\_array}{4}$$\n",
    "   - 这两个方程分别表示了两条直线的关系，将它们绘制到同一个图形上，展示了它们在二维平面上的变化趋势。\n",
    "\n",
    "3. **绘制两条直线**：在同一图形上绘制了$y\\_line\\_1$和$y\\_line\\_2$。$y\\_line\\_1$用蓝色绘制，$y\\_line\\_2$用绿色绘制。这样可以清晰地看到它们在平面坐标系中的关系。\n",
    "\n",
    "4. **标记交点**：在图中明确标记了这两个方程的解，即交点位置$(23, 12)$。在该点上使用“x”标记，并且在$x=23$和$y=12$处分别绘制垂直和水平虚线，虚线颜色为红色。这些线条指向交点，使该点在图形中更易辨识。\n",
    "\n",
    "5. **设置坐标轴标签**：对$x$轴和$y$轴分别添加标签$x_1$和$x_2$，用以表示方程中的两个变量。$x_1$的含义为“number of chickens”，$x_2$的含义为“number of rabbits”。\n",
    "\n",
    "6. **添加$x$轴和$y$轴的基准线**：在$x=0$和$y=0$的位置分别绘制了水平和垂直基准线。这些基准线帮助确定方程和交点的位置，同时便于观察坐标轴的对称性。\n",
    "\n",
    "7. **设置刻度和比例**：\n",
    "   - 将$x$和$y$轴的刻度范围限制在$[0, 30]$，步长为$5$，确保图形在给定的范围内显示。\n",
    "   - 调用$plt.axis('scaled')$使$x$轴和$y$轴的单位比例一致，以避免图形的拉伸或缩放失真。\n",
    "\n",
    "8. **启用小刻度**：开启了小刻度，使得网格更加细化，辅助阅读数据。\n",
    "\n",
    "9. **网格线设置**：图形中加入了两种不同的网格线样式：\n",
    "   - 较浅的灰色虚线用于小刻度，辅助定位。\n",
    "   - 较深的灰色虚线用于主要网格，增强坐标的可读性。\n",
    "\n",
    "10. **隐藏坐标轴边框**：通过隐藏图形四周的边框，使得图形更加简洁，突出展示了交点和方程关系。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e1b7793e-3f7c-487e-9bd6-6ef887ae4c17",
   "metadata": {},
   "source": [
    "## 导入所需库"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "c341faf9-fee9-4daa-9576-727b4affe8cc",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np  # 导入numpy库，用于数值计算\n",
    "import matplotlib.pyplot as plt  # 导入matplotlib库，用于绘图"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "24050e7c-e19a-4d8f-b484-1c488e08e0ac",
   "metadata": {},
   "source": [
    "## 设置图形参数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "bb2dda37-8d9f-4ce2-a69c-199619b14c20",
   "metadata": {},
   "outputs": [],
   "source": [
    "plt.rcParams[\"figure.figsize\"] = [7.50, 3.50]  # 设置图形大小为7.5 x 3.5英寸\n",
    "plt.rcParams[\"figure.autolayout\"] = True  # 设置自动布局以避免重叠"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7855e197-afe9-4652-b652-71d1c87ae062",
   "metadata": {},
   "source": [
    "## 定义数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "8d81e77b-211e-458f-8c14-9d071ed08483",
   "metadata": {},
   "outputs": [],
   "source": [
    "x_array = np.arange(0, 30 + 1, step=1)  # 生成从0到30的x坐标数组，步长为1\n",
    "y_line_1 = 35 - x_array  # 定义y_line_1的方程：y = 35 - x\n",
    "y_line_2 = (94 - 2 * x_array) / 4  # 定义y_line_2的方程：y = (94 - 2x) / 4"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b46a3fa3-cb65-49d7-ba3f-7968875d25f7",
   "metadata": {},
   "source": [
    "## 创建图形"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "ab5fb2e0-324c-454c-aabb-48d12409f030",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 750x350 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots()  # 创建一个图形和坐标轴\n",
    "\n",
    "## 绘制两条直线\n",
    "plt.plot(x_array, y_line_1, color='#0070C0')  # 绘制y_line_1，颜色为蓝色\n",
    "plt.plot(x_array, y_line_2, color='g')  # 绘制y_line_2，颜色为绿色\n",
    "\n",
    "## 标记线性方程的解\n",
    "plt.plot(23, 12, marker='x', markersize=12)  # 在点(23,12)处标记解，标记样式为“x”\n",
    "plt.axvline(x=23, color='r', linestyle='--')  # 绘制一条垂直于x=23的虚线，颜色为红色\n",
    "plt.axhline(y=12, color='r', linestyle='--')  # 绘制一条水平于y=12的虚线，颜色为红色\n",
    "\n",
    "## 设置坐标轴标签\n",
    "plt.xlabel('$x_1$ (number of chickens)')  # 设置x轴标签为“x1 (number of chickens)”\n",
    "plt.ylabel('$x_2$ (number of rabbits)')  # 设置y轴标签为“x2 (number of rabbits)”\n",
    "\n",
    "## 绘制x轴和y轴的基准线\n",
    "plt.axhline(y=0, color='k', linestyle='-')  # 在y=0处绘制水平线，颜色为黑色\n",
    "plt.axvline(x=0, color='k', linestyle='-')  # 在x=0处绘制垂直线，颜色为黑色\n",
    "\n",
    "## 设置刻度范围和比例\n",
    "plt.xticks(np.arange(0, 30 + 1, step=5))  # 设置x轴刻度范围为0到30，步长为5\n",
    "plt.yticks(np.arange(0, 30 + 1, step=5))  # 设置y轴刻度范围为0到30，步长为5\n",
    "plt.axis('scaled')  # 设置坐标轴比例，使x和y轴单位长度一致\n",
    "\n",
    "## 启用小刻度\n",
    "plt.minorticks_on()  # 启用小刻度\n",
    "\n",
    "## 添加网格线\n",
    "ax.grid(which='minor', linestyle=':', linewidth='0.5', color=[0.8, 0.8, 0.8])  # 添加小刻度网格线，颜色为浅灰色\n",
    "ax.set_xlim(0, 30)  # 设置x轴的显示范围为0到30\n",
    "ax.set_ylim(0, 30)  # 设置y轴的显示范围为0到30\n",
    "\n",
    "## 隐藏坐标轴边框\n",
    "ax.spines['top'].set_visible(False)  # 隐藏顶部边框\n",
    "ax.spines['right'].set_visible(False)  # 隐藏右侧边框\n",
    "ax.spines['bottom'].set_visible(False)  # 隐藏底部边框\n",
    "ax.spines['left'].set_visible(False)  # 隐藏左侧边框\n",
    "\n",
    "## 添加主要网格线\n",
    "ax.grid(linestyle='--', linewidth=0.25, color=[0.5, 0.5, 0.5])  # 添加虚线网格，颜色为灰色"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "ecd322f4-f919-4be2-adc3-69d28ef25e69",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
